def doc_to_sents(doc_list):
    pat = '。|!|•|;|；||（\d{1,2}）|\(\d{1,2}\)|xa0|●|||\\n|Ø|！|★'

    if isinstance(doc_list, list):
        step0 = []

        for doc in doc_list:
            pat_ = pat

            if len(re.findall('\d{1,2}．', doc)) >= 3:
                pat_ += '|\d．'

            if len(re.findall('\d{1,2}:', doc)) >= 3:
                pat_ += '|\d:'

            if len(re.findall('\d{1,2}：', doc)) >= 3:
                pat_ += '|\d：'

            if len(re.findall('\d{1,2},', doc)) >= 3:
                pat_ += '|\d,'

            if len(re.findall('\d{1,2}，', doc)) >= 3:
                pat_ += '|\d，'

            if len(re.findall('·', doc)) >= 3:
                pat_ += '|·'

            if len(re.findall('\d{1,2}\)', doc)) >= 3 and valide_serial_num(re.findall('\d{1,2}\)', doc)):
                pat_ += '|\d{1,2}\)'

            if len(re.findall('\d{1,2}）', doc)) >= 3 and valide_serial_num(re.findall('\d{1,2}）', doc)):
                pat_ += '|\d{1,2}）'

            if len(re.findall('\d{1,2}\s', doc)) >= 3 and valide_serial_num(re.findall('\d{1,2}\s', doc)):
                pat_ += '|\d{1,2}\s'

            if len(re.findall('[一二三四五六七八九十]，', doc)) >= 2:
                pat_ += '|[一二三四五六七八九十]，'

            for line in re.split(pat_, doc.strip()):
                step0.append(re.sub('\d{4}\.\d{2}|\d{4}\.\d{1,2}[ -–]+\d{4}\.\d{1,2}|\d{4}[- ]+\d{4}|&nbsp|\s{2,}', ' ', line))

        step1 = split_by_num_dot(step0)
        step2 = split_by_num_dun(step1)
        step3 = split_by_keyword(step2)
        step4 = split_by_comma(step3)

        step5 = list(map(lambda i: i and re.sub('⑤|④|③|②|①|→|[一二三四五六七八九十]、|^－|^\d{1,2}．|^\d{1,2}）|\\n|^\d{1,2}，|^\d{1,2}:|^\d{1,2}\.|^\d{1,2}、|^[A-Za-z]、|^\d{1,2}：|^[\u4E00-\u9FA5]{2,6}：', '', i.strip()).strip('.，、-:：☆◇●').strip(), step4))
        step6 = filter(lambda i: i and len(i) > 4, step5)

        return list(step6)
    else:
        result = re.split(pat, doc_list)

        result = filter(lambda i: i and len(i) > 4, result)
        result = list(map(lambda i: i and re.sub('\\n', '', i).strip(':：').strip(), result))

        return result
